vue项目打包获取git commit信息并输出到打包后的指定文件夹中

您所在的位置:网站首页 git-commit-id-plugin 输出tag vue项目打包获取git commit信息并输出到打包后的指定文件夹中

vue项目打包获取git commit信息并输出到打包后的指定文件夹中

2024-07-11 14:25| 来源: 网络整理| 查看: 265

需求背景: 前端项目经常打包,发包部署,为了方便测试及运维发现问题时与正确commit信息对比 实现方式: 使用Node.js的child_process模块来执行git命令 实现步骤: 1.在package.json的同级目录下新建一个version.js文件。内容可根据自己的实际需求来定,

const execSync = require('child_process').execSync; const fs = require('fs'); // 读取package.json文件 const data = fs.readFileSync('./package.json'); const packageData = JSON.parse(data); // 获取git信息的相关命令 const COMMITHASH_COMMAND = 'rev-parse HEAD'; const VERSION_COMMAND = 'describe --always'; const BRANCH_COMMAND = 'rev-parse --abbrev-ref HEAD'; const NEW_COMMIT_MESSAGE = 'log -1 --pretty=%B'; const COMMIT_TIME = 'show -s --format=%cd'; try { const d = new Date(); const commitId = execSync(`git ${COMMITHASH_COMMAND}`).toString().trim(); const branch = execSync(`git ${BRANCH_COMMAND}`).toString().trim(); const release = execSync(`git ${VERSION_COMMAND}`).toString().trim(); const commitMessage = execSync(`git ${NEW_COMMIT_MESSAGE}`).toString().trim(); const commitTime = execSync(`git ${COMMIT_TIME}`).toString().trim(); const versionStr = ` COMMIT_ID: ${commitId} Branch: ${branch} Release: ${release} CommitMessage: ${commitMessage} CommitTime: ${commitTime} PackingTime: ${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()} ${d.getHours()}:${d.getMinutes()} Version: ${packageData.version} `; fs.writeFileSync(`dist/version.txt`, versionStr); } catch (e) { throw new Error(e); }

2.修改package.json的打包脚本: 在这里插入图片描述 3.使用npm run build:prod进行打包会输出version.txt文件在dist目录下 详情如下: 在这里插入图片描述

ps: 在浏览器环境下直接执行 Node.js 的 child_process 模块是不可行的,因为浏览器环境无法直接访问操作系统的命令行



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3